Skip to content

2.2 Quickstart

本节通过一个完整示例快速上手 LangChain。


准备工作

  1. 安装 LangChain 和模型集成包
  2. 配置 API 密钥
bash
pip install -U langchain langchain-anthropic langgraph
export ANTHROPIC_API_KEY="sk-ant-..."

第一个 Agent

用不到 10 行代码创建一个能调用工具的 Agent:

python
from langchain.agents import create_agent

def get_weather(city: str) -> str:
    """获取指定城市的天气"""
    return f"{city}今天晴,气温 25 度"

agent = create_agent(
    "claude-sonnet-4-5-20250929",
    tools=[get_weather],
    system_prompt="你是一个有帮助的助手",
)

result = agent.invoke(
    {"messages": [{"role": "user", "content": "北京天气怎么样?"}]}
)
print(result["messages"][-1].content)

生产级 Agent 六步骤

步骤 1:定义系统提示词

系统提示词塑造 Agent 的行为和个性:

python
system_prompt = """你是一位专业的天气预报员,说话风格幽默。

你的职责:
1. 根据用户位置提供天气信息
2. 给出穿衣建议
3. 用轻松的方式表达
"""

步骤 2:创建工具

工具让 Agent 能够获取外部数据:

python
from langchain_core.tools import tool

@tool
def get_weather(city: str) -> str:
    """获取指定城市的当前天气"""
    # 实际应用中调用天气 API
    weather_data = {
        "北京": "晴,25度,微风",
        "上海": "多云,28度,湿度较大",
        "广州": "阵雨,30度,记得带伞",
    }
    return weather_data.get(city, f"{city}天气数据暂不可用")

@tool
def get_user_location() -> str:
    """获取用户当前位置"""
    # 实际应用中获取 IP 定位等
    return "北京"

步骤 3:配置模型

设置模型参数:

python
from langchain_anthropic import ChatAnthropic

model = ChatAnthropic(
    model="claude-sonnet-4-5-20250929",
    temperature=0.7,      # 适度创意
    max_tokens=1000,      # 限制输出长度
    timeout=30,           # 超时设置
    max_retries=2,        # 重试次数
)

步骤 4:结构化输出

使用 dataclass 定义输出格式:

python
from dataclasses import dataclass

@dataclass
class WeatherReport:
    """天气报告结构"""
    city: str
    temperature: str
    condition: str
    suggestion: str

步骤 5:添加记忆

使用 checkpointer 维护对话上下文:

python
from langgraph.checkpoint.memory import InMemorySaver

checkpointer = InMemorySaver()

步骤 6:组装 Agent

将所有组件组合:

python
from langchain.agents import create_agent

agent = create_agent(
    model=model,
    tools=[get_weather, get_user_location],
    system_prompt=system_prompt,
    checkpointer=checkpointer,
)

完整示例

python
from langchain.agents import create_agent
from langchain_anthropic import ChatAnthropic
from langchain_core.tools import tool
from langgraph.checkpoint.memory import InMemorySaver

# 1. 系统提示词
system_prompt = """你是一位幽默的天气预报员。
根据天气给出穿衣建议,用轻松的方式表达。"""

# 2. 定义工具
@tool
def get_weather(city: str) -> str:
    """获取指定城市的天气"""
    return f"{city}:晴,25度,微风徐徐"

@tool
def get_location() -> str:
    """获取用户位置"""
    return "北京"

# 3. 配置模型
model = ChatAnthropic(
    model="claude-sonnet-4-5-20250929",
    temperature=0.7
)

# 4. 添加记忆
checkpointer = InMemorySaver()

# 5. 创建 Agent
agent = create_agent(
    model=model,
    tools=[get_weather, get_location],
    system_prompt=system_prompt,
    checkpointer=checkpointer,
)

# 6. 运行对话
config = {"configurable": {"thread_id": "user-001"}}

# 第一轮对话
response1 = agent.invoke(
    {"messages": [{"role": "user", "content": "我在哪里?天气如何?"}]},
    config=config
)
print("助手:", response1["messages"][-1].content)

# 第二轮对话 - Agent 记住了上下文
response2 = agent.invoke(
    {"messages": [{"role": "user", "content": "那我需要带伞吗?"}]},
    config=config
)
print("助手:", response2["messages"][-1].content)

Agent 工作流程

用户输入

Agent 接收消息

LLM 分析意图

决定是否调用工具 ←──┐
    ↓               │
调用工具获取数据     │
    ↓               │
LLM 处理工具结果 ────┘

生成最终回复

返回给用户

流式输出

实时显示 Agent 的思考过程:

python
# 使用 stream 方法
for event in agent.stream(
    {"messages": [{"role": "user", "content": "今天穿什么好?"}]},
    config=config,
    stream_mode="updates"
):
    print(event)

下一步

恭喜完成快速入门!接下来可以:

  1. 阅读 2.3 Philosophy 了解设计理念
  2. 深入学习 3.0 Core Components
  3. 探索更多工具集成

上一节2.1 Install

下一节2.3 Philosophy

基于 MIT 许可证发布。内容版权归作者所有。